package main

import (
	"context"
	"fmt"
	"os"
	"singo/conf"
	"singo/server"

	"github.com/gin-gonic/gin"
)

// App struct
type App struct {
	ctx context.Context
}

// NewApp creates a new App application struct
func NewApp() *App {
	// var Loc, _ = time.LoadLocation("Asia/Shanghai")
	// time.Local = Loc
	// app := gin.Default()
	// config.Init()
	// db.Init()
	// router.Init(app)
	// // app.Run(":8800")
	// go func() {
	// 	succ := app.Run(":8800")
	// 	log.Println(succ)
	// }()
	return &App{}
}

// startup is called when the app starts. The context is saved
// so we can call the runtime methods
func (a *App) startup(ctx context.Context) {
	a.ctx = ctx
	conf.Init()

	// 装载路由
	gin.SetMode(os.Getenv("GIN_MODE"))
	r := server.NewRouter()
	go func() {
		r.Run(":3000")
	}()

}

// Greet returns a greeting for the given name
func (a *App) Greet(name string) string {
	return fmt.Sprintf("Hello %s, It's show time!", name)
}
